The present invention generally relates to computer storage and more specifically, to a system and method for policy-based storage provisioning.
As applications become more advanced and complicated, the allocation of storage for the applications becomes increasingly difficult. Storage area networks (SANs), for example, provide applications running on computer systems (servers, server clusters, PCs, and so on) with high storage capacity capability using a plurality of storage server systems coupled to the computer systems. Typically, SAN administrators manually allocate storage based upon the needs of an application running on a server or server cluster that will use disk space. Additionally, when there are any changes, such as in the characteristics of the application, the characteristics of the server or server cluster, the capability of the storage devices, the network topology, or the availability of storage in a data center, the administrator may need to revise earlier decisions on storage allocations and take necessary corrective action, such as migrating existing data from existing disks to new disks. The changing of earlier decisions of storage allocation may be complex, time-consuming, and error-prone, and may require application downtime.
Frequently, storage administrators do not have the necessary information and/or tools to process available information to take the appropriate actions. Further, even if the necessary information and tools are available to take the corrective actions, the effort and cost involved may deter the administrators from taking the actions. Thus, sub-optimal usage of storage capacity results and the performance of an application is subsequently degraded.
Another issue that SAN administrators face is the heterogeneity of storage configuration interfaces for each of the different types of storage devices that are deployed in a SAN. Each of the storage configuration interfaces have different capabilities and nuances that make it very difficult, if not impossible, for SAN administrators to configure storage in a consistent and uniform manner. Thus, deploying new storage devices becomes very difficult and may even be delayed or avoided even though the new storage device may be more suitable or cost effective for the applications that use the storage.